﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NakedObjects;
using RTC.Modelo.Entidades;
using RTC.Modelo.Entidades.EstudiosPropios;
using RTC.Modelo.Entidades.Convalidaciones;

namespace RTC.Modelo.Generacion
{
    [NotPersisted]
    public class GeneradorConvalidacion
    {

        #region Injected Services

        public IDomainObjectContainer Container { protected get; set; }

        #endregion


        private Solicitud solicitud;

        public static void GenerarConvalidacion(Solicitud sol ){
            (new GeneradorConvalidacion(sol)).Generar();
        }

        private GeneradorConvalidacion(Solicitud sol) {
            this.solicitud = sol;
        }

        private void Generar()
        {
            solicitud.LimpiarInformacionConvalidaciones();

            ICollection<Asignatura> asignaturas =  solicitud.ObtenerAsignaturas();
            ICollection<Convalidacion> convalidaciones = ObtenerConvalidaciones(asignaturas);

            GenerarSolicitudes(asignaturas, convalidaciones);
        }

        private void GenerarSolicitudes(ICollection<Asignatura> asignaturas, ICollection<Convalidacion> convalidaciones)
        {
            throw new NotImplementedException();
        }

        private ICollection<Convalidacion> ObtenerConvalidaciones( ICollection<Asignatura> asignaturas )
        {
                //IQueryable<Convalidacion> qConv = Container.Instances<Convalidacion>();

                //var convalidacionesEstudio = from e in qConv
                //                             where e.Asignatura.Estudio.Equals(solicitud.Estudio)
                //                             select e;

            //var convalidacionesEstudio = from e in qConv
            //                             where e.Asignatura.Estudio = solicitud.Estudio
            //                             select e;

            throw new NotImplementedException();
        }

    }
}
